﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using HerGoS.Documentos.Entities;
using HerGoS.Documentos.Engine;
using HerGoS.ControlsUI;
using HerGoS.Administration.Engine;

namespace HerGoS.WebUI.Documentos
{
    public partial class LegajoDocumento_ABM : PageBase
    {
        #region Propiedades

        public LegajoDocumento LegajoDocumento
        {
            get
            {
                if (ViewState["LegajoDocumento"] != null)
                    return (LegajoDocumento)ViewState["LegajoDocumento"];
                return null;
            }
            set
            {
                ViewState["LegajoDocumento"] = value;
            }

        }

        public bool FromDocumento
        {
            get
            {
                if (ViewState["FromDocumento"] != null)
                    return (bool)ViewState["FromDocumento"];
                return false;
            }
            set
            {
                ViewState["FromDocumento"] = value;
            }

        }




        #endregion


        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                hidFechaActual.Value = DateTime.Now.ToShortDateString();
                   
                LoadCombos();
                if (Request.QueryString["id"] == null)
                {
                    LegajoDocumento = new LegajoDocumento();
                    this.txtCuerpos.Text = "0";
                    this.txtFolios.Text = "0";
                    this.txtAnexos.Text = "0";
                  
                }
                else
                {
                    var Id = Convert.ToInt32(Request.QueryString["id"]);
                    LegajoDocumento = GestorLegajoDocumento.Obtener(Id);
                    this.txtNumero.Text = LegajoDocumento.Numero.ToString() + "/" + LegajoDocumento.Ano.ToString();
                    //this.txtAno.Text = LegajoDocumento.Ano.ToString();
                    this.txtCopia.Text = LegajoDocumento.Copia.ToString();
                    this.txtReferencia.Text = LegajoDocumento.Referencia;
                    this.txtFechainicio.Text = LegajoDocumento.FechaInicio.Value.ToShortDateString();
                    this.txtCuerpos.Text = LegajoDocumento.Cuerpos == 0 ? "0" : LegajoDocumento.Cuerpos.ToString();
                    this.txtFolios.Text = LegajoDocumento.Folios == 0 ? "0" : LegajoDocumento.Folios.ToString();
                    this.txtAnexos.Text = LegajoDocumento.Anexos == 0 ? "0" :LegajoDocumento.Anexos.ToString();
                    this.cboEntidadIniciadora.SelectedValue = LegajoDocumento.EntidadIniciadora == null ? "0" : LegajoDocumento.EntidadIniciadora.OID.ToString();
                    this.cboProceso.SelectedValue = LegajoDocumento.Proceso == null ? "0" : LegajoDocumento.Proceso.OID.ToString();
                }
                Initialize();
            }

        }

        void Initialize()
        {
            this.btnGuardar.Settings(new ButtonExtText());
            this.btnCerrar.Settings(new ButtonExtText());
            LoadAutoria(LegajoDocumento);
        }

        private void LoadCombos()
        {
            this.cboEntidadIniciadora.DataSource = GestorEntidades.Consultar();
            cboEntidadIniciadora.DataTextField = "Denominacion";
            cboEntidadIniciadora.DataValueField = "OID";
            cboEntidadIniciadora.DataBind();
            cboEntidadIniciadora.Items.Insert(0, new ListItem("--Seleccione-- ", "0"));

            this.cboProceso.DataSource = GestorProceso.Consultar();
            cboProceso.DataTextField = "Descripcion";
            cboProceso.DataValueField = "OID";
            cboProceso.DataBind();
            cboProceso.Items.Insert(0, new ListItem("--Seleccione-- ", "0"));



        }
        protected void btnGuardar_Click(object sender, EventArgs e)
        {
            if (!string.IsNullOrEmpty(txtNumero.Text))
            {
                var array = this.txtNumero.Text.Split('/');
                LegajoDocumento.Numero = array[0].ToInteger();
                LegajoDocumento.Ano = array[1].ToInteger();
            }
         
            LegajoDocumento.Copia = this.txtCopia.Text.ToInteger() ;
            LegajoDocumento.Referencia = this.txtReferencia.Text;
            LegajoDocumento.FechaInicio = this.txtFechainicio.Text.ToDateTime();
            LegajoDocumento.Cuerpos = this.txtCuerpos.Text.ToInteger();
            LegajoDocumento.Folios = this.txtCuerpos.Text.ToInteger();
            LegajoDocumento.Anexos = this.txtAnexos.Text.ToInteger();

            LegajoDocumento.EntidadIniciadora = GestorEntidades.Obtener(cboEntidadIniciadora.SelectedValue.ToInteger()); 
            LegajoDocumento.Proceso = GestorProceso.Obtener(this.cboProceso.SelectedValue.ToInteger());


            GestorLegajoDocumento.Guardar(LegajoDocumento);
            LegajoDocumento =  GestorLegajoDocumento.Obtener(LegajoDocumento.OID);
            this.txtNumero.Text = LegajoDocumento.Numero.ToString() + "/" + LegajoDocumento.Ano.ToString();

            var numero = this.txtNumero.Text;
          
              
            string script = @"$(function(){{parent.IntervaloCerrarPopup('{0}');}});";

            script = string.Format(script, numero);

            ScriptManager.RegisterStartupScript(Page, typeof(Page), "closedialog", script, true);
            
          

        }


        protected void btnCerrar_Click(object sender, EventArgs e)
        {
            ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "closedialog", "parent.CerrarPopup();", true);
        }
    }
}